package com.ruoyi.easyfame.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 银行业务功能对象 bank_business_function
 * 
 * @author ruoyi
 * @date 2025-09-09
 */
public class BankBusinessFunction extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 业务ID（主键） */
    private Long id;

    /** 所属银行ID，关联bank_base_info表 */
    private Long bankId;

    /** 业务名称 */
    @Excel(name = "业务名称")
    private String businessName;

    /** 服务地区 */
    @Excel(name = "服务地区")
    private String serviceArea;

    /** 最低额度 */
    @Excel(name = "最低额度")
    private Long minAmount;

    /** 最高额度 */
    @Excel(name = "最高额度")
    private Long maxAmount;

    /** 业务利率(%) */
    @Excel(name = "业务利率(%)")
    private Double rate;

    /** 最短期限（配合期限类型使用） */
    @Excel(name = "最短期限", readConverterExp = "配=合期限类型使用")
    private Long minTerm;

    /** 最长期限（配合期限类型使用） */
    @Excel(name = "最长期限", readConverterExp = "配=合期限类型使用")
    private Long maxTerm;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private String businessType;

    /** 业务状态 */
    @Excel(name = "业务状态")
    private Long status;

    /** 申请条件 */
    @Excel(name = "申请条件")
    private String applicationConditions;

    /** 所需材料 */
    @Excel(name = "所需材料")
    private String requiredMaterials;

    /** 办理周期 */
    @Excel(name = "办理周期")
    private String processingPeriod;
    @Excel(name = "银行名称")
    private String bankName;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setBankId(Long bankId) 
    {
        this.bankId = bankId;
    }

    public Long getBankId() 
    {
        return bankId;
    }

    public void setBusinessName(String businessName) 
    {
        this.businessName = businessName;
    }

    public String getBusinessName() 
    {
        return businessName;
    }

    public void setServiceArea(String serviceArea) 
    {
        this.serviceArea = serviceArea;
    }

    public String getServiceArea() 
    {
        return serviceArea;
    }

    public void setMinAmount(Long minAmount) 
    {
        this.minAmount = minAmount;
    }

    public Long getMinAmount() 
    {
        return minAmount;
    }

    public void setMaxAmount(Long maxAmount) 
    {
        this.maxAmount = maxAmount;
    }

    public Long getMaxAmount() 
    {
        return maxAmount;
    }

    public void setRate(Double rate) 
    {
        this.rate = rate;
    }

    public Double getRate() 
    {
        return rate;
    }

    public void setMinTerm(Long minTerm) 
    {
        this.minTerm = minTerm;
    }

    public Long getMinTerm() 
    {
        return minTerm;
    }

    public void setMaxTerm(Long maxTerm) 
    {
        this.maxTerm = maxTerm;
    }

    public Long getMaxTerm() 
    {
        return maxTerm;
    }

    public void setBusinessType(String businessType) 
    {
        this.businessType = businessType;
    }

    public String getBusinessType() 
    {
        return businessType;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setApplicationConditions(String applicationConditions) 
    {
        this.applicationConditions = applicationConditions;
    }

    public String getApplicationConditions() 
    {
        return applicationConditions;
    }

    public void setRequiredMaterials(String requiredMaterials) 
    {
        this.requiredMaterials = requiredMaterials;
    }

    public String getRequiredMaterials() 
    {
        return requiredMaterials;
    }

    public void setProcessingPeriod(String processingPeriod) 
    {
        this.processingPeriod = processingPeriod;
    }

    public String getProcessingPeriod() 
    {
        return processingPeriod;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("bankId", getBankId())
            .append("businessName", getBusinessName())
            .append("serviceArea", getServiceArea())
            .append("minAmount", getMinAmount())
            .append("maxAmount", getMaxAmount())
            .append("rate", getRate())
            .append("minTerm", getMinTerm())
            .append("maxTerm", getMaxTerm())
            .append("businessType", getBusinessType())
            .append("status", getStatus())
            .append("applicationConditions", getApplicationConditions())
            .append("requiredMaterials", getRequiredMaterials())
            .append("processingPeriod", getProcessingPeriod())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
                .append("bankName", getBankName())
            .toString();
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }
}
